We pulled raw recreational catch data from CREST database: data sources include creel, irec, lodge and log-book data. Data is typically in number of marked and unmarked fish kept and released.
Show the code
#Pull sport data from CRESTsource("PullAllSport.R")# PullAllSport(Start_year) set the calendar year to start querying from to the current yearrslt <-PullAllSport(2005)quality_report <- rslt[[1]]estimates <- rslt[[2]]rm(rslt)#Load North Coast data from csv.nbc_aabm<-read.csv("Sport_data_set_NBC_AABM.csv") |>as_tibble() |> dplyr::select(YEAR, MONTH, AREA, REGION2, MANAGEMENT, SOURCE, MARKS_DESC, TYPE, VAL_calc)|>rename(VAL = VAL_calc)|>mutate(INCLUDE_15 =1, VARIANCE =0)|>mutate(season =case_when( MONTH %in%c(1:4) ~"spring", MONTH %in%c(5:9) ~"summer", MONTH %in%c(10:12) ~"fall"))
Filtered data for marine estimates only
Filtered the creel data based on high quality creel which meet the following criteria in a given PFMA and month:
At least 3 flights for each type of day (weekday or weekend)
At least 25 interviews mid week OR at least 10% of interviews from mid-week
At least 25 interviews on weekends OR at least 10% of interviews from weekend
At least 15 day spread in flights
At least 15 day spread in interviews
After filtering for criteria, we identify where a creel or logbook estimate was made (even if 0).
We combined estimates under sources called “Lodge Log”,“Lodge Manifest”,“Lodge Manifest - Log”, “Lodge Estimate”, “Log Estimate”, “Lodge eLog” to be called lodge_log.
We identify a season - spring is months 1:5, summer 6:8 and fall 9:12
We also expanded the dataset to include all combinations of area, year, month, mark status, kept status and source -> adding NAs where no data was collected
We also expanded the dataset to include all combinations of area, year, month, mark status, kept status and source -> adding NAs where no data was collected
Data is typically in number of marked and unmarked fish kept and released, however, there are two other categories when mark status is unknown: unchecked kept and unchecked released. We need to extrapolate to marked and unmarked catch using mark rate
We calculated mark rate in a number of different ways and prioritize the assignment of mark rate in the following order:
Monthly area calculation - Mark rate calculated for a given source (iREC, creel, or logbook) within a given year, month, and area
Monthly average by source - Mark rate calculated within a given year, month, and area, averaged across sources
Monthly regional average - Mark rate calculated for a given source within a given year, month, and region (averaged across areas within a region)
Seasonal area average - Mark rate calculated for a given source (iREC, creel, or logbook) within a given year, season, and area
Seasonal regional average -Mark rate calculated for a given source within a given year, season, and region
Monthly area average across years - Mark rate calculated for a given source within a given month, area, and across years
Monthly regional average across years- Mark rate calculated for a given source within a given month, region, and across years
We joined the various calculations of mark rate to the catch data and expanded unchecked kept and released into marked and unmarked of those categories using the best available chosen mark rate
We then used criteria to choose the catch estimate by PFMA and month as follows:
In months 5-9 use creel+ lodge if that data exists, otherwise use calibrated iREC
In months outside of 5-9 use calibrated iREC
This calculation was grouped ignoring mark and kept status, so that true zeros for one category of catch wouldn’t influence the other categories inclusion.
Assign previous finescale fisheries to the catch data using PFMAs and month
Assign new finescale fisheries (including terminal) to the catch data using PFMAs and season
Generally seasonal fisheries fall into the pre-defined categories - spring is months 1:4, summer 5:9 and fall 10:12, with a few exceptions - the WCVI ISBM fisheries are shorter length.
We sum up catch by mark and kept status for each year and new finescale fishery of the defined coverage periods for creel and for the previously calculated catch estimate. This is the data used in the modelling exercise described below.
We also calculate creel effort - a proportion of months and areas in a given finescale fishery that we surveyed using creel or logbooks. This is used in the modelling efforts below.
We can visualize this as creel and logbook only information and look for where there are gaps in coverage
We can then add on irec data to see where irec adds information
We see that almost always a creel- irec combination (blue) or irec (red) on its own will be chosen as the best estimate for the whole month. This is because there are typically a few PFMAs in the larger fishery that are not creeled in each month.
Modelling
Now we take the chunks of summer, spring, fall consistently creeled or logbooked data between 2013 and 2023 and establish a relationship via a model with the irec based catch estimate.
We investigate various models using a systematic approach:
One model for all pre-terminal sport fisheries
Same dataset tested for all models - therefore done without NAs
We didn’t consider random effects models since we don’t have enough levels of each factor to warrant random effects inclusion (need >10 typically)
For all candidate models we used the DHARMa package to create a qq-plot to detect deviations in observations from expected distribution and a plot of the residuals against predicted values to detect patterns in residuals. We visually assessed whether candidate models improved plots.
We also compared candidate models using AIC, a lower AIC indicating a better model fit.
The order of comparisons was as follows:
First we compared three distributions: normal (gaussian), poisson, and Gamma distribution to see which fit our data the best on the full model. These distributions are all consistent with our positive, continuous data
\[
catch = creel.summer * status * finescale.fishery * season * creel.effort
\]
Next, using the chosen distribution, we compared the full model with all terms to models with each of the terms dropped sequentially except for creel.summer which was our main interest. We did this first by dropping out full terms from the full interaction model, then used the dredge function in MuMIn to sequentially drop out the various sub-interactions
We selected the model with the lowest AIC and best visual diagnostics.
Next, we investigated if the fully interactive model is better than a subset of interactions. We used the dredge function from the MuMin package to sequentially drop terms (including all interactions) and chose to include all terms in models with AIC <2.
Therefore the best model included summer creel, marked and kept status, finescale fishery, creel effort, and season and various interactions of these terms
Northern and Central BC data is collected in different ways than South Coast. Data was in various formats and pieced together as follows:
Northern BC - NBC AABM S
Comprises Areas 1, 2 (East and West), 101, 102, 142
Data for 2005 to 2008 for areas 1 and 2W found in the Fixed Sport Estimates had total unchecked (for mark status) kept and released #s of fish in the sheet QCI Sport. The sheet “ALL” has an estimate of Mark rate. Therefore:
Marked Kept = Unchecked Kept x mark rate
Marked Released = Unchecked Released x mark rate
Unmarked Kept = Unchecked Kept x (1- mark rate)
Unmarked Released = Unchecked Released x (1- mark rate)
From 2009-2019, for Area 1, 2W, (and beginning in 2017 for 2E) there was only Unchecked Kept catch available and mark rate. Therefore we used the release rate from the Haida creel for the whole year for all of NBC AABM S to get releases.
Marked Kept = Unchecked Kept x mark rate
Marked Released = (Unchecked Kept x Release Ratio) x mark rate
Unmarked Kept = Unchecked Kept x (1- mark rate)
Unmarked Released = (Unchecked Kept x Release Ratio) x (1- mark rate)
From 2020 to present, for Area 1, 2W, and 2E there was only Unchecked Kept and Released catch available by month and mark rate. We used mark rate from iREC to extrapolate to marked and unmarked as above (2005-2008 period).
We modelled NBC AABM separately since the creel+ logbook data is collected in a unique way and modelled against calibrated iREC-only estimates.
The best model included historic effort, mark status and season
\(catch = historic summer + season + mark status + historic effort * historic summer + historic effort*mark status + historic summer* mark status + historic summer*season + mark status*season\)
Show the code
Season_north_aabm<-Sport_mark_rate_finescale_combined%>%filter(YEAR %in%c(2013:2023)) %>%filter(finescale_fishery_old =="NBC AABM S")#Modelling comparisons need to be done on models with same # of NAs - so drop nasSeason_north_aabm_no_nas<-Season_north_aabm %>%drop_na(any_of(c("historic_summer", "mark_status", "finescale_fishery_old", "season", "historic_effort", "kept_status")))North_aabm_model_gamma_drop_kept_spec<-glm(formula = catch_estimate+1~historic_summer+season+mark_status+historic_effort*historic_summer + historic_effort*mark_status + historic_summer*mark_status + historic_summer*season + mark_status*season, family=Gamma(link ="log"), data = Season_north_aabm_no_nas)#res_gam_drop_kept_spec <- simulateResiduals(North_aabm_model_gamma_drop_kept_spec, plot = T, quantreg=T)#summary(North_aabm_model_gamma_drop_kept_spec)#Adding predicted dataSeason_north_aabm_old<- Sport_mark_rate_finescale_combined %>%filter(YEAR %in%c(2005:2012)) %>%ungroup() %>%mutate(pred_cat ="predicted") %>%filter(finescale_fishery_old =="NBC AABM S")Season_north_aabm_old_new<-predict.glm(North_aabm_model_gamma_drop_kept_spec, newdata = Season_north_aabm_old, type ="response")Season_north_aabm_old_new_2<-Season_north_aabm_old %>%mutate(catch_estimate_predicted = Season_north_aabm_old_new)Season_north_aabm2<-Season_north_aabm %>%mutate(catch_estimate_predicted = catch_estimate, pred_cat="observed")Season_north_aabm_combined<-rbind(Season_north_aabm_old_new_2, Season_north_aabm2)
forloop
NBC AABM S FALL
NBC AABM S SPRING
NBC AABM S SUMMER
Central BC - CBC S
Good coverage 6:8 only, maybe 9 if omit a couple years
irec bumps this out by a few months but not all year
Northern BC - NBC ISBM
Missing a lot of data both before and after 2012.
Data appears to be 5:8 only, irec expands to all year